package com.sheng.leetcode.year2023.month05.day17;

import org.junit.Test;

/**
 * @author liusheng
 * @date 2023/05/17
 * <p>
 * 2446. 判断两个事件是否存在冲突<p>
 * <p>
 * 给你两个字符串数组 event1 和 event2 ，表示发生在同一天的两个闭区间时间段事件，其中：<p>
 * event1 = [startTime1, endTime1] 且<p>
 * event2 = [startTime2, endTime2]<p>
 * 事件的时间为有效的 24 小时制且按 HH:MM 格式给出。<p>
 * 当两个事件存在某个非空的交集时（即，某些时刻是两个事件都包含的），则认为出现 冲突 。<p>
 * 如果两个事件之间存在冲突，返回 true ；否则，返回 false 。<p>
 * <p>
 * 示例 1：<p>
 * 输入：event1 = ["01:15","02:00"], event2 = ["02:00","03:00"]<p>
 * 输出：true<p>
 * 解释：两个事件在 2:00 出现交集。<p>
 * <p>
 * 示例 2：<p>
 * 输入：event1 = ["01:00","02:00"], event2 = ["01:20","03:00"]<p>
 * 输出：true<p>
 * 解释：两个事件的交集从 01:20 开始，到 02:00 结束。<p>
 * <p>
 * 示例 3：<p>
 * 输入：event1 = ["10:00","11:00"], event2 = ["14:00","15:00"]<p>
 * 输出：false<p>
 * 解释：两个事件不存在交集。<p>
 * <p>
 * 提示：<p>
 * evnet1.length == event2.length == 2.<p>
 * event1[i].length == event2[i].length == 5<p>
 * startTime1 <= endTime1<p>
 * startTime2 <= endTime2<p>
 * 所有事件的时间都按照 HH:MM 格式给出<p>
 * <p>
 * 来源：力扣（LeetCode）<p>
 * 链接：<a href="https://leetcode.cn/problems/determine-if-two-events-have-conflict">2446. 判断两个事件是否存在冲突</a><p>
 * 著作权归领扣网络所有。商业转载请联系官方授权，非商业转载请注明出处。<p>
 */
public class LeetCode2446 {

    @Test
    public void test01() {
//        String[] event1 = {"01:15", "02:00"}, event2 = {"02:00", "03:00"};
//        String[] event1 = {"01:00", "02:00"}, event2 = {"01:20", "03:00"};
        String[] event1 = {"10:00", "11:00"}, event2 = {"14:00", "15:00"};
        System.out.println(new Solution().haveConflict(event1, event2));
    }
}

class Solution {
    public boolean haveConflict(String[] event1, String[] event2) {
        return event1[0].compareTo(event2[1]) == 0 || (event1[0].compareTo(event2[1]) < 0 && event1[1].compareTo(event2[0]) >= 0);
    }
}
